## Инверсия зависимостей

В этом задании вам предстоит создать CRUD для двух сущностей:

* Сущность `Post` — это посты
* Сущность `Comment` — это комментарии

Комментарии привязываются к посту через поле `postId`. При удалении поста должны удаляться все комментарии с таким же `postId`, как `id` текущего поста.

### src/main/java/exercise/controller/PostsController.java

Реализуйте полный CRUD сущности `Post`. Необходимо реализовать следующие маршруты:

* *GET /posts* — список всех постов
* *GET /posts/{id}* – просмотр конкретного поста
* *POST /posts* – создание нового поста. При успешном создании возвращается статус 201
* *PUT /posts/{id}* – обновление поста
* *DELETE /posts/{id}* – удаление поста. При удалении поста удаляются все комментарии этого поста

В классе контроллера добавьте инъекцию нужных репозиториев. Используйте метод `deleteByPostId()` в репозитории комментариев для удаления комментариев по `id` поста.

### src/main/java/exercise/controller/CommentsController.java

Реализуйте полный CRUD сущности `Comment`. Необходимо реализовать следующие маршруты:

* *GET /comments* — список всех комментариев
* *GET /comments/{id}* – просмотр конкретного комментария
* *POST /comments* – создание нового комментария. При успешном создании возвращается статус 201
* *PUT /comments/{id}* – обновление комментария
* *DELETE /comments/{id}* – удаление комментария

В классе контроллера добавьте инъекцию репозитория с комментариями.
